package co.gov.medellin.ssti.sub.model.service.impl;

import java.util.Collection;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import co.gov.medellin.ssti.sub.model.dao.RepDetBOTDAO;
import co.gov.medellin.ssti.sub.model.dao.exception.DAOException;
import co.gov.medellin.ssti.sub.model.service.RepDetBOTService;
import co.gov.medellin.ssti.sub.model.vo.CondicionConsultaVO;
import co.gov.medellin.ssti.sub.model.vo.RepAtributoVO;
import co.gov.medellin.ssti.sub.model.vo.RepDetBOTVO;
import co.gov.medellin.ssti.sub.model.vo.ReporteDetVO;

@Service
public class RepDetBOTServiceImpl implements RepDetBOTService {
	@Autowired
	RepDetBOTDAO repDetBOTDAOImpl2;

	public Collection<ReporteDetVO> findReporte(
			List<RepAtributoVO> atributosGenericos,
			List<RepAtributoVO> atributosEspecificos,
			List<CondicionConsultaVO> filtros, RepDetBOTVO criteria)
			throws DAOException {
		try {
			return repDetBOTDAOImpl2.findReporte(atributosGenericos,
					atributosEspecificos, filtros, criteria);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	public Collection<ReporteDetVO> findReporteConGestor(
			List<RepAtributoVO> atributosGenericos,
			List<RepAtributoVO> atributosEspecificos,
			List<CondicionConsultaVO> filtros, RepDetBOTVO criteria)
			throws DAOException {
		try {
			return repDetBOTDAOImpl2.findReporteConGestor(atributosGenericos,
					atributosEspecificos, filtros, criteria);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	public Integer findCantidadBeneficiarios(List<CondicionConsultaVO> filtros,
			RepDetBOTVO criteria) {
		try {
			return repDetBOTDAOImpl2.findCantidadBeneficiarios(filtros,
					criteria);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	public Long findValorTotal(List<CondicionConsultaVO> filtros,
			RepDetBOTVO criteria) {
		try {
			return repDetBOTDAOImpl2.findValorTotal(filtros, criteria);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

	public RepDetBOTVO findFilters(RepDetBOTVO criteria) {
		try {
			return repDetBOTDAOImpl2.findFilters(criteria);
		} catch (Exception e) {
			throw new DAOException(e);
		}
	}

}
